package cn.oms.auth.api.service;

import cn.oms.auth.api.dto.res.PermissionRes;
import cn.oms.auth.api.dto.res.RoleRes;
import cn.oms.auth.api.dto.res.UserRes;
import cn.oms.auth.api.dto.req.CheckEmailReq;
import cn.oms.auth.api.dto.req.RegisterReq;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author AllenChen曾晨
 * @since 2022-04-12
 */
@Api(tags = "权限服务IUserService")
public interface IUserService {

    //用户注册的方法
    @ApiOperation(value="用户注册", notes="用户注册", produces="application/json",response = String.class)
    public String registerUser(RegisterReq registerReq);

    // 根据用户名获取用户信息
    @ApiOperation(value="根据用户名获取用户信息", notes="根据用户名获取用户信息", produces="application/json",response = UserRes.class)
    public UserRes getUserByUsername(String username);

    // 根据用户id查询所有权限
    @ApiOperation(value="根据用户id获取用户所有权限", notes="根据用户id获取用户所有权限", produces="application/json",response = PermissionRes[].class)
    public List<PermissionRes> getPermissionsById(Integer id);

    // 根据用户id查询所有角色
    @ApiOperation(value="根据用户id获取用户所有角色", notes="根据用户id获取用户所有角色", produces="application/json",response = RoleRes[].class)
    public List<RoleRes> getRolesById(Integer id);

    //用户注册验证邮箱
    @ApiOperation(value="用户注册验证邮箱", notes="用户注册验证邮箱", produces="application/json",response = String.class)
    public String registerCheckEmail(CheckEmailReq checkEmailReq);


}
